% fname: routing_dyad_0_6__sel_bufferlevel__topology_8x8__.m
% ./noxim -routing dyad 0.6 -sel bufferlevel -dimx 8 -dimy 8  -sim 10000 -warmup 2000 -size 8 8 -buffer 8 

function [max_pir, max_throughput, min_delay] = routing_dyad_0_6__sel_bufferlevel__topology_8x8__(symbol)

data = [
%             pir      avg_delay     throughput      max_delay       rpackets         rflits
             0.01        26.8564      0.0782559            167           5008          40067
             0.01        27.1978      0.0801426            224           5127          41033
             0.01        27.1718      0.0812305            158           5198          41590
             0.01        26.9881      0.0816602            199           5227          41810
             0.01        25.8812       0.080377            168           5144          41153
             0.01        26.6178      0.0790762            152           5060          40487
             0.01        25.2985      0.0775137            233           4962          39687
             0.01        27.3466      0.0810527            197           5184          41499
             0.01        26.4574      0.0805801            152           5157          41257
             0.01        27.4387      0.0816777            162           5229          41819
             0.01        25.1412      0.0776191            158           4971          39741
             0.01        28.0949      0.0827539            200           5299          42370
             0.01        27.3587      0.0817891            197           5235          41876
             0.01        25.8153      0.0794551            169           5085          40681
             0.01        27.7609      0.0806055            215           5156          41270
             0.01        26.4492      0.0784414            199           5018          40162
             0.01        27.7838      0.0806211            266           5162          41278
             0.01        26.8312      0.0800137            180           5119          40967
             0.01        26.3843      0.0812793            177           5204          41615
             0.01        27.9611      0.0816074            180           5221          41783
            0.011        29.4223      0.0890469            173           5698          45592
            0.011        28.2038      0.0870742            192           5575          44582
            0.011        28.7867      0.0871152            287           5575          44603
            0.011        30.9495      0.0891484            277           5702          45644
            0.011        29.6317      0.0872949            200           5585          44695
            0.011        31.6029      0.0892695            226           5714          45706
            0.011        29.6475      0.0872031            210           5583          44648
            0.011        30.1272      0.0867012            205           5549          44391
            0.011        30.4272      0.0890391            206           5702          45588
            0.011        29.9529      0.0896309            156           5734          45891
            0.011        28.4687      0.0875371            208           5598          44819
            0.011        30.2535      0.0891758            216           5704          45658
            0.011        29.0039      0.0891309            190           5711          45635
            0.011        29.4566      0.0876191            171           5605          44861
            0.011        30.3799      0.0888477            249           5685          45490
            0.011        30.9842      0.0888457            244           5684          45489
            0.011        28.9662      0.0869648            184           5567          44526
            0.011        29.7441      0.0881699            240           5642          45143
            0.011        28.9909       0.087332            230           5589          44714
            0.011        29.4951      0.0869746            190           5566          44531
            0.012        32.9847      0.0969609            251           6207          49644
            0.012        34.4999      0.0958984            266           6137          49100
            0.012        33.7442      0.0960938            235           6149          49200
            0.012         32.085      0.0972383            188           6224          49786
            0.012         33.954       0.098041            213           6276          50197
            0.012        33.7127      0.0970938            230           6214          49712
            0.012        32.9584      0.0960645            267           6148          49185
            0.012        35.0283      0.0971426            225           6213          49737
            0.012        33.5533      0.0960762            337           6147          49191
            0.012        35.1591      0.0970918            262           6218          49711
            0.012        32.1313      0.0945664            237           6054          48418
            0.012        32.5734      0.0966777            242           6186          49499
            0.012         33.351      0.0973887            233           6236          49863
            0.012        31.7012      0.0942109            173           6031          48236
            0.012         30.827      0.0936895            208           5995          47969
            0.012         33.357      0.0967539            204           6194          49538
            0.012         31.539      0.0951543            230           6083          48719
            0.012        33.7395      0.0978203            265           6260          50084
            0.012        32.3381      0.0938652            217           6005          48059
            0.012        33.3515      0.0961406            272           6151          49224
            0.013        36.9655       0.103736            216           6635          53113
            0.013        38.4747        0.10259            358           6568          52526
            0.013        36.0055         0.1029            257           6583          52685
            0.013        38.6941       0.103969            366           6658          53232
            0.013        37.4773       0.105309            310           6738          53918
            0.013        35.4586       0.104596            203           6694          53553
            0.013        38.3363       0.103721            337           6636          53105
            0.013        38.8381       0.106689            483           6832          54625
            0.013        35.6383       0.104082            298           6661          53290
            0.013        37.6581       0.102244            287           6545          52349
            0.013        37.2427       0.104656            390           6699          53584
            0.013        37.9439       0.105857            377           6775          54199
            0.013        37.3087       0.104361            350           6682          53433
            0.013        36.6552       0.103365            275           6619          52923
            0.013        35.9771       0.102916            262           6589          52693
            0.013        39.5479       0.103539            372           6627          53012
            0.013        37.2585        0.10391            278           6655          53202
            0.013        37.8864       0.104977            252           6718          53748
            0.013         36.727       0.106043            256           6788          54294
            0.013        38.1684       0.103268            295           6603          52873
            0.014        46.2564       0.112342            500           7193          57519
            0.014        45.2647       0.113668            354           7276          58198
            0.014        43.6796       0.110666            449           7081          56661
            0.014        41.8805       0.110338            361           7063          56493
            0.014         38.896       0.111748            229           7155          57215
            0.014        40.9244       0.110766            268           7089          56712
            0.014        42.6365       0.110506            452           7070          56579
            0.014         42.599       0.112004            436           7169          57346
            0.014        46.5624       0.113295            427           7254          58007
            0.014        44.7907       0.112059            402           7175          57374
            0.014         42.629       0.111561            341           7141          57119
            0.014        40.7706       0.110494            252           7071          56573
            0.014        42.6277       0.112904            301           7223          57807
            0.014        44.4071       0.111492            375           7138          57084
            0.014        44.5047       0.110766            348           7088          56712
            0.014          40.91       0.111588            273           7142          57133
            0.014        41.9633       0.113381            367           7256          58051
            0.014         45.394       0.113164            440           7244          57940
            0.014        39.4991       0.109787            274           7025          56211
            0.014        45.1899       0.112098            400           7177          57394
            0.015         55.995       0.122525            467           7841          62733
            0.015        55.5328        0.12226            419           7828          62597
            0.015        57.3697       0.120049            629           7684          61465
            0.015        57.7694       0.121309            679           7768          62110
            0.015         51.859       0.118607            515           7591          60727
            0.015         420.39       0.108137           3302           6918          55366
            0.015        49.6211       0.118299            470           7571          60569
            0.015        58.7706       0.119502            643           7649          61185
            0.015        56.5048       0.120609           1007           7716          61752
            0.015        57.5238       0.120316            544           7703          61602
            0.015        69.5853       0.119088            946           7615          60973
            0.015        74.5099       0.122025            752           7805          62477
            0.015        99.4709       0.119994           1636           7683          61437
            0.015        71.6988       0.119865            886           7669          61371
            0.015         92.309        0.12073           1459           7726          61814
            0.015        50.3629        0.11918            405           7630          61020
            0.015        147.543        0.12143           2021           7770          62172
            0.015         52.956       0.118637            458           7593          60742
            0.015        68.0828       0.121178            595           7752          62043
            0.015         56.431       0.119316            404           7635          61090
            0.016        75.3409       0.126439            947           8090          64737
            0.016        179.209       0.115451           2913           7389          59111
            0.016        161.558       0.124375           2551           7960          63680
            0.016        226.142       0.125883           3804           8053          64452
            0.016        126.013       0.120412           2170           7707          61651
            0.016         315.21       0.114824           3556           7349          58790
            0.016        165.992       0.120861           2781           7734          61881
            0.016        339.272       0.116746           2847           7468          59774
            0.016        502.457       0.111326           5791           7130          56999
            0.016        166.259       0.117576           2967           7521          60199
            0.016        109.473       0.125574           1552           8041          64294
            0.016        151.003       0.121914           1954           7806          62420
            0.016        392.342       0.121172           5434           7759          62040
            0.016        319.764       0.120879           4852           7732          61890
            0.016        192.228       0.117615           2435           7523          60219
            0.016        396.862       0.107238           5290           6865          54906
            0.016        100.923       0.129014           1338           8261          66055
            0.016        136.574       0.120035           2009           7683          61458
            0.016        95.0388       0.121184           1459           7757          62046
            0.016        119.597        0.12375           2081           7920          63360
            0.017        321.218       0.123707           4527           7917          63338
            0.017        730.526       0.101756           7010           6515          52099
            0.017        666.688        0.11076           6151           7087          56709
            0.017        519.446       0.111076           5160           7106          56871
            0.017        631.654       0.106576           6595           6820          54567
            0.017        562.364       0.111004           6780           7103          56834
            0.017        568.463       0.106859           6022           6836          54712
            0.017        867.588       0.100229           7865           6417          51317
            0.017        810.224       0.102305           7335           6547          52380
            0.017        586.736       0.115795           6374           7417          59287
            0.017        374.471       0.126209           4303           8077          64619
            0.017        222.791       0.126682           2889           8111          64861
            0.017        488.149       0.120273           5552           7697          61580
            0.017        601.923       0.112428           7732           7192          57563
            0.017        678.247        0.11058           6475           7071          56617
            0.017        628.175       0.103234           6783           6607          52856
            0.017        1187.14      0.0875273           8234           5600          44814
            0.017        534.349       0.108818           5874           6961          55715
            0.017        793.834       0.104613           6477           6691          53562
            0.017        369.472       0.109697           5586           7016          56165
            0.018        1066.43       0.101268           8286           6482          51849
            0.018         606.76       0.103869           6898           6648          53181
            0.018        787.415       0.103842           7448           6643          53167
            0.018         492.89        0.11173           6972           7152          57206
            0.018        696.503       0.101451           7318           6495          51943
            0.018        919.758      0.0947598           7917           6067          48517
            0.018          516.9       0.117361           5859           7510          60089
            0.018        530.547       0.112941           7317           7232          57826
            0.018        666.938       0.111396           7039           7131          57035
            0.018        601.524       0.104783           7303           6702          53649
            0.018        885.962       0.095627           7985           6119          48961
            0.018        893.937       0.100541           8007           6432          51477
            0.018        863.525       0.103303           8165           6611          52891
            0.018        774.764       0.113322           7460           7256          58021
            0.018        987.141      0.0956816           8264           6123          48989
            0.018        568.352       0.111453           7527           7135          57064
            0.018        779.989      0.0975605           7385           6241          49951
            0.018        945.052        0.09725           7769           6223          49792
            0.018         751.24       0.095498           7938           6108          48895
            0.018        1075.91      0.0987187           8455           6318          50544
            0.019        872.795       0.106844           8227           6839          54704
            0.019         972.54       0.105457           8769           6753          53994
            0.019        854.167       0.103314           7404           6612          52897
            0.019        1207.77      0.0841504           8652           5386          43085
            0.019         1034.7      0.0987813           8717           6321          50576
            0.019        1071.44       0.102154           7978           6539          52303
            0.019        1071.91       0.102186           8629           6536          52319
            0.019        1166.62      0.0952559           8939           6097          48771
            0.019        1104.14      0.0980762           8421           6277          50215
            0.019        1014.36      0.0976191           8633           6245          49981
            0.019         687.39       0.100082           7646           6403          51242
            0.019        1201.54       0.100412           8557           6428          51411
            0.019        1059.52      0.0982227           8104           6283          50290
            0.019         958.23       0.102135           8212           6537          52293
            0.019         1033.6      0.0954902           8654           6112          48891
            0.019        1067.69      0.0963496           8374           6167          49331
            0.019        1004.45       0.100551           8424           6436          51482
            0.019        900.124      0.0936074           8665           5986          47927
            0.019        1010.92      0.0932012           7350           5967          47719
            0.019        1116.79      0.0934785           8291           5980          47861
             0.02        918.945       0.093791           9156           6004          48021
             0.02        1038.58      0.0894473           8583           5721          45797
             0.02         956.29      0.0960352           8344           6146          49170
             0.02        1168.96      0.0944805           8631           6050          48374
             0.02        1133.76      0.0871895           8565           5581          44641
             0.02        1161.16       0.101301           8549           6481          51866
             0.02        1281.96      0.0927207           8651           5933          47473
             0.02        908.262       0.098334           8467           6292          50347
             0.02        914.289      0.0985586           9054           6308          50462
             0.02        1357.89      0.0862422           8976           5520          44156
             0.02         1317.4      0.0883691           8929           5659          45245
             0.02        1207.69      0.0958633           8677           6136          49082
             0.02        1036.04       0.103574           8305           6633          53030
             0.02        1254.56      0.0911895           9169           5835          46689
             0.02        1102.16       0.085373           9028           5464          43711
             0.02        1148.32      0.0904355           8756           5785          46303
             0.02        1291.43      0.0930332           8926           5957          47633
             0.02        1220.43      0.0994082           8792           6364          50897
             0.02        1019.92      0.0943867           8798           6040          48326
             0.02        1008.45       0.100115           7822           6409          51259
];

rows = size(data, 1);
cols = size(data, 2);

data_delay = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+1);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_delay = [data_delay; data(ifirst, 1:cols-5), avg ci];
end

figure(1);
hold on;
plot(data_delay(:,1), data_delay(:,2), symbol);

data_throughput = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+2);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_throughput = [data_throughput; data(ifirst, 1:cols-5), avg ci];
end

figure(2);
hold on;
plot(data_throughput(:,1), data_throughput(:,2), symbol);

data_maxdelay = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+3);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_maxdelay = [data_maxdelay; data(ifirst, 1:cols-5), avg ci];
end

figure(3);
hold on;
plot(data_maxdelay(:,1), data_maxdelay(:,2), symbol);


%-------- Saturation Analysis -----------
slope=[];
for i=2:size(data_throughput,1),
    slope(i-1) = (data_throughput(i,2)-data_throughput(i-1,2))/(data_throughput(i,1)-data_throughput(i-1,1));
end

for i=2:size(slope,2),
    if slope(i) < (0.95*mean(slope(1:i)))
        max_pir = data_throughput(i, 1);
        max_throughput = data_throughput(i, 2);
        min_delay = data_delay(i, 2);
        break;
    end
end
